package com.ocp.macro.mapper.allocation;

import com.ocp.macro.entity.*;

import java.util.List;
import java.util.Map;

/**
 * 定制调拨单页面列表
 */
public interface AllocationMapper {


    /**1
     * 加载页面固定信息
     * @param optId 运营账号id
     * @return 抬头、创建人
     */
    Operate selectOperate(Integer optId);

    /**2
     * 调\出入机构列表
     * @return Organization列表
     */
    List<Organization> selectOrganizations();

    /**3
     *经销商
     * @Param orgId 运营账号id
     * @return 返回经销商名
     */
    List<DealList> selectDealListById(Integer orgId);

    /**4
     *送货地址
     * @param dealerListId 经销商id
     * @return  Address  返回送货收获地址和addrId
     */
    List<Address> selectAddressAccountById(Integer dealerListId);

    /**5
     *送货地址详情
     * @param addrId 地址id
     * @return 收货人、收货人电话、收货人身份证
     */
    List<Address> selectAddressById(Integer addrId);

    /**6
     * 调拨类型
     * @return allocationId、allocationName
     */
    List<AllocationType> selectAllocationTypes();

    /**7
     *调出\入仓库
     * @param orgId 调出\入机构
     * @return deptId、deptName
     */
    List<Depository> selectDepositoryByOrgId(Integer orgId);


    /**8
     *
     *发运方式列表
     * @return Deliver数组
     */
    List<Deliver> selectDelivers();


    /**9
     * 在仓库库位表中查询产品编号
     * @param deposNo 调入仓库编号
     * @return 查询产品编号
     */
    List<String> selectDeposPlaces(String deposNo);


    /**10
     * 查看出库和入库的库位详细信息
     * @param proNo 产品编号
     * @param deposNo 仓库编号
     * @return 返回库位编码、库位名称、出库时的可发货库存
     */
    DeposPlace selectDeposPlacesAll(String proNo,String deposNo);

    /**17
     * 查看库位产品数量
     * @param dpsNo 库位编号
     * @return 库位产品数量
     */
    Integer selectDepos(String dpsNo);

    /**11
     * 库位产品修改数量
     * @param dpsNo 库位编号
     * @param proNumber 产品数量
     * @return 更改的行数
     */
    Integer updateDeposPlace(String dpsNo,Integer proNumber);

    /**12
     * 将上方信息插入Allocation中
     * @param allocation
     * @return 更改的行数
     */
    Integer inAllocation(Allocation allocation);

    /**13
     * 查询备货订单编号
     * @param dealerId 经销商账号id
     * @return 备货订单编号
     */
    List<String>  selectStockId(Integer dealerId);

    /**14
     * 查询备货订单详细信息
     * @param stockNo 备货订单编号
     * @return 备货订单详细信息
     */
    Stock selectStocks(String stockNo);

    /**15
     * 插入下方的库位多条信息
     * @param alctProduct 库位信息列表
     * @return 改变行数通过list可以获取多个id值
     */
    Integer insertAlctProduct(List<AlctProduct> alctProduct);

    /**16
     *调拨单与调拨产品一对多
     * @param val 多个调拨单单号和调拨单产品单id
     * @return 改变行数
     */
    Integer insertAlctProductRel(List<Map<String ,Object>> val);


    /**
     *17
     * 查询备货订单编号
     */

    List<String > selectstockNo();


    /**
     * 查看产品
     * @param prono 产品编号
     * @return
     */
    List<Product> productList(String prono);


}
